home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / xc2103i.lzh / XC2103.XDF / ASK30 / MODESW.S < prev    next >
Text File  |  1993-09-15  |  2KB  |  134 lines

  1. ********************************************************************************
  2. *
  3. *    モード切替 for ASK3
  4. *    Copyright (C) 1992  ACCESS CO.,LTD.
  5. *
  6. ********************************************************************************
  7.     .include    doscall.mac
  8. CACI_END    equ    $ff
  9.  
  10.     .text
  11.     .even
  12. *
  13. *デバイスヘッダ、その他
  14. *
  15. devhdr:
  16.     .dc.l    -1
  17.     .dc.w    $8000
  18.     .dc.l    str
  19.     .dc.l    intr
  20.     .dc.b    'XFER***/'
  21.  
  22. rqhdr:    .dc.l    0
  23. str:
  24.     move.l    a5,rqhdr
  25.     rts
  26.  
  27. intr:
  28.     movem.l    d0-d7/a0-a6,-(sp)
  29.     move.l    rqhdr,a5
  30.     clr.l    d0
  31.     move.b    2(a5),d0
  32.     tst.b    d0
  33.     bne    notcom
  34.     bsr    init
  35.     move.b    d0,3(a5)
  36.     lsr.w    #8,d0
  37.     move.b    d0,4(a5)
  38.     bra    intr_end
  39. notcom:
  40.     move.b    #$03,3(a5)
  41.     move.b    #$00,4(a5)
  42. intr_end:
  43.     movem.l    (sp)+,d0-d7/a0-a6
  44.     rts
  45.  
  46. *
  47. *アクセサリエントリ
  48. *
  49. acc_main:
  50.     cmpi.w    #0,ledoff
  51.     beq    on
  52. off:    clr.w    ledoff
  53.     jsr    getmode
  54.     move.l    d0,ledmd
  55.     move.l    #2,-(sp)
  56.     jsr    setmode
  57.     addq.l    #4,sp
  58.     move.l    #CACI_END,d0
  59.     rts
  60. on:    move.w    #1,ledoff
  61.     move.l    ledmd,-(sp)
  62.     jsr    setmode
  63.     addq.l    #4,sp
  64.     move.l    #CACI_END,d0
  65.     rts
  66.  
  67. *
  68. *入力モードの設定(FPコール5番)
  69. *
  70. setmode:
  71.     move.l    4(sp),-(sp)
  72.     move.l    #5,-(sp)
  73.     DOS    _KNJCTRL
  74.     addq.l    #8,sp
  75.     rts
  76.  
  77. *
  78. *入力モードの取得(FPコール6番)
  79. *
  80. getmode:
  81.     move.l    #6,-(sp)
  82.     DOS    _KNJCTRL
  83.     addq.l    #4,sp
  84.     rts
  85.  
  86. *
  87. *アクセサリ定義構造体
  88. *
  89. accdef:    .dc.w    3            *KS_EDIT0|KS_EDITING
  90.     .dc.w    $0155            *NOT_ASCII|XF1_KEY
  91.     .dc.l    acc_main
  92.     .dc.l    cbuf
  93.     .dc.l    0
  94.     .dc.l    0
  95. cbuf:    .ds.b    80
  96. ledoff:    .dc.w    1            *トグルするためのフラグ
  97. ledmd:    .ds.l    1            *入力モードを保存する
  98.  
  99. *
  100. *非常駐部
  101. *
  102. init:
  103.     move.l    #50,-(sp)        *ASKのバージョンチェック
  104.     DOS    _KNJCTRL
  105.     addq.l    #4,sp
  106.     cmpi.l    #300,d0
  107.     blt    ask3_not_exist
  108.  
  109.     pea.l    accdef            *アクセサリを登録する
  110.     move.l    #60,-(sp)
  111.     DOS    _KNJCTRL
  112.     addq.l    #8,sp
  113.     cmpi.l    #-1,d0
  114.     beq    inierr
  115.  
  116.     pea.l    okmes
  117.     DOS    _PRINT
  118.     addq.l    #4,sp
  119.     move.l    #init,14(a5)
  120.     clr.l    d0
  121.     rts
  122.  
  123. ask3_not_exist:
  124.     pea.l    errmes
  125.     DOS    _PRINT
  126.     addq.l    #4,sp
  127. inierr:    move.w    #$700d,d0
  128.     rts
  129.  
  130. okmes:    .dc.b    'モード切替 for ASK3 Copyright (C) 1992 ACCESS CO.,LTD.',13,10,0
  131. errmes:    .dc.b    'ASKver3.00以上がありません. ',0
  132.  
  133.     .end
  134.